%%%%%%% directives %%%%%
%%diapo 1
\subsection{Implémentation}
\begin{frame}
\frametitle{Implémentation}
   \begin{block}{Les fonctions utilisées}    
	   \begin{itemize}
    		 \item Register\_callback : enregistrement du pragma.
          \item C\_register\_pragma : vérification de la forme du pragma .
           \item Handle\_pragma : l'analyse des arguments du pragma .     
         \end{itemize}
    \end{block}
                     
\end{frame}
%% diapo 2
\subsection{Gestion des arguments}
\begin{frame}
\frametitle{Gestion des arguments}
%%%% bloc 1
     \begin{block}{handle\_pragma}
     
	    \begin{itemize}
    		\item Parser les arguments de la directive. 
        \item Générer les messages d'erreurs.
        \item Récupérer les noms des fonctions instrumentées et les insérer dans un vecteur.
        \item Dé-doublonner si nécessaire et générer un warning le cas échéant.
             
        \end{itemize}
     \end{block}
  %%%bloc 2
  \begin{block}{Les règles de gestion de la directive}
     
	    \begin{itemize}
    		\item S'il y a plusieurs fonctions, les mettre entre parenthèses.  
        \item Séparer les noms des fonctions par des virgules.
        \item Indiquer les noms sans guillemets.   
        \end{itemize}
     \end{block}                     
\end{frame}


%%% diapo3
\begin{frame}\frametitle{Automate de parcage de la grammaire}
	\begin{figure}
    		\begin{center}
	    		\includegraphics[scale=0.3]{../images/PragmaArgsParser.png}
		\end{center}	
	\end{figure}
\end{frame} 
%%% diapo4
\begin{frame}\frametitle{les règles de gestion de la directive}
\begin{block}{Mise en place de l'automate }
	    \begin{itemize}
    		\item L'automate est codé via une machine à états. 
        \item Récupérer différents types d'erreurs (parenthèse manquante, virgules successives). 
        \item Spécifier le message d'erreur adéquat. 
        \item En sortie nous avons un vecteur.
        \end{itemize}
     \end{block}  
            \begin{exampleblock}{Les instrumentations critique traitées} 
                  \begin{itemize}
    		              \item L'utilisateur peut également écrire plusieurs directives \#pragma instrument.
    		              \item Vérification de l'existence de toutes les fonctions instrumentées dans le code source.
    	         \end{itemize}
     \end{exampleblock}                  
\end{frame}

  